// pages/category/index.js
import { request } from '../../request/index'
import regeneratorRuntime from '../../lib/runtime/runtime';

Page({

  data: {
    // 左侧菜单
    leftMenu: [],
    // 右侧内容
    rightContent: [],
    // 选中的左侧菜单项
    activeIndex: 0,
    // 右侧内容到顶部的距离
    scrollTop: 0

  },
  // 返回的接口数据
  catesList: [],

  onLoad: function (options) {

    // 缓存
    // 1 先判断一下本地存储中有没有旧的数据
    // { time: Date.now(), data: [...] }
    // 2 没有旧数据 直接发送新请求
    // 3 有旧的数据 同时 旧的数据也没有过期 就使用 本地存储中的旧数据即可

    // 获取本地存储数据
    const cates = wx.getStorageSync("cates");
    if (!cates) {
      this.getCates()
    } else {
      if (Date.now() - cates.time >= 1000 * 10) {
        this.getCates()
      } else {
        this.catesList = cates.data

        let leftMenu = this.catesList.map(v => v.cat_name)
        let rightContent = this.catesList[0].children

        this.setData({
          leftMenu,
          rightContent
        })
      }
    }

  },

  // 获取数据
  async getCates () {
    // request({
    //   url: '/categories'
    // }).then((result) => {
    //   // console.log(result)
    //   this.catesList = result.data.message

    //   // 把数据存到本地存储中
    //   wx.setStorageSync("cates", { time: Date.now(), data: this.catesList })

    //   let leftMenu = this.catesList.map(v => v.cat_name)
    //   let rightContent = this.catesList[0].children

    //   this.setData({
    //     leftMenu,
    //     rightContent
    //   })
    // })
    const result = await request({ url: '/categories' })
    this.catesList = result

    // 把数据存到本地存储中
    wx.setStorageSync("cates", { time: Date.now(), data: this.catesList })

    let leftMenu = this.catesList.map(v => v.cat_name)
    let rightContent = this.catesList[0].children

    this.setData({
      leftMenu,
      rightContent
    })
  },

  // 左侧菜单的点击事件
  handleTap (e) {
    // console.log(e);
    const { index } = e.currentTarget.dataset

    let rightContent = this.catesList[index].children

    this.setData({
      rightContent,
      activeIndex: index,
      scrollTop: 0
    })
  }


})